package spectra.ee.web.api.model;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import spectra.base.log.Logger;
import spectra.base.util.StringUtil;
import spectra.ee.web.WebPublic;
import spectra.ee.web.api.ApiPublic;

/**
 * ajax api 에서 파라메터를 담을때 사용할 commnad 모델 객체
 * 각각의 파라메터에 대한 프로퍼티를 갖지는 않고 HttpServletRequest 를 그대로 담는다.
 * 
 * 모든 요청에 필수로 필요로 하는 파라메터에 대해서만, 별도로 프로퍼티로 정의한다.
 * ex) command, service
 * 
 * @author dhheo
 */
public class AjaxForm extends ParameterForm
{
	private static Logger logger = Logger.getLoggerInstance(AjaxForm.class.getName());
    
    public AjaxForm(Map parameterMap) throws Exception
    {
    	super(parameterMap);
    }
	
	public void parsingAndSetting(Map parameterMap) throws Exception
	{
		//command 는 서비스명.command 로 구성되어 있다. 나눠서 serviceName, command로 넣는다.
    	//ex) faq.getFaqList
		String strAuthKey = (String)parameterMap.get(ApiPublic.PARAM_AUTH_KEY);
    	String strParamCommand = (String)parameterMap.get(ApiPublic.PARAM_COMMAND);
    	String strParamFormName = (String)parameterMap.get(ApiPublic.PARAM_FORM);
    	String strServiceName = (String)parameterMap.get(ApiPublic.PARAM_SERVICE);
    	/*
    	int iSearch = strParamCommand.lastIndexOf(".");
    	if (iSearch < 0)
    	{
    		logger.error("Invalid Parameter : command parameter format invalid! '.' character missing");
    		throw new Exception("Invalid Parameter : command parameter format invalid! '.' character missing");
    	}
    	
    	String strServiceName = strParamCommand.substring(0, iSearch);
    	
    	String strMethod = strParamCommand.substring(iSearch + 1);
    	*/
    	setAuthKey(strAuthKey);
    	setCommand(strParamCommand);
    	setServiceName(strServiceName);  
    	setFormName(strParamFormName);
    	//나머지 파라메터는
    	setParameterMap(parameterMap);
		
	}
}
